package liangtWorkSpace.singleDemo.headFirst;

/**
 * @ClassName SingleDamo
 * @Description : 单例模式
 * @Author : LiangT
 * @Date : 2020/7/20 12:29
 */
public class SingleDamo {
    private static SingleDamo singleDamo;

    private SingleDamo(){}

    /**
     * 将构造方法私有化，再调用时判断是否为空，如果为空则加锁进行重新构造
     * @return
     */
    public static SingleDamo getSingleDamo(){
        if (singleDamo == null){
            synchronized(SingleDamo.class){
                if (singleDamo == null){
                    singleDamo = new SingleDamo();
                }
            }
        }
        return singleDamo;
    }
    public void say(){
        System.out.println("这是单例模式！");
    }
    public static void main(String[] args) {
        SingleDamo singleDamo = SingleDamo.getSingleDamo();
        singleDamo.say();
    }
}
